outputs_root = Path('images_out')
folder_prefix = 'permutations_limited_palette_2D'
folders = list(outputs_root.glob(f'{folder_prefix}_*'))
len(folders)
def format_val(v):
try:
v = float(v)
if int(v) == v:
v = int(v)
except:
pass
return v
def parse_folder_name(folder):
#chunks = folder.name[1+len(folder_prefix):].split('_')
#chunks = folder.name[1+len(folder_prefix):].split('-')
metadata_string = folder.name[1+len(folder_prefix):]
pattern = r"_?([a-zA-Z_]+)-([0-9.]+)"
matches = re.findall(pattern, metadata_string)
d_ = {k:format_val(v) for k,v in matches}
d_['fpath'] = folder
d_['n_images'] = len(list(folder.glob('*.png')))
return d_
#parse_folder_name(folders[0])
df_meta = pd.DataFrame([parse_folder_name(f) for f in folders])
variant_names = [v for v in df_meta.columns.tolist() if v not in ['fpath']]
variant_ranges = {v:df_meta[v].unique() for v in variant_names}
[v.sort() for v in variant_ranges.values()]
True
##########################################
# to do: output and display palettes
#kargs = {k:widgets.Dropdown(options=v, value=v[0], disabled=False, layout=Layout(width='auto')) for k,v in variant_ranges.items()}
#kargs['i'] = widgets.IntSlider(min=1, max=40, step=1, value=1, continuous_update=False, readout=True, readout_format='d')
n_imgs_per_group = 40
kargs = {k:pn.widgets.DiscreteSlider(name=k, options=list(v), value=v[0]) for k,v in variant_ranges.items()}
kargs['i'] = pn.widgets.IntSlider(name='i', start=1, end=n_imgs_per_group, step=1, value=1)
PRELOAD_IMAGES = False
from PIL import Image
def read_image(fpath):
#return plt.imread(fpath)
#return pn.pane.PNG(fpath, width=700)
with Image.open(fpath) as _img:
img = _img.copy()
return img
url_prefix = "https://raw.githubusercontent.com/dmarx/pytti-settings-test/main/images_out/"
#im_path = im_path.replace('images_out/', url_prefix)
image_paths = [str(p) for p in Path('images_out').glob('**/*.png')]
#print(len(list(image_paths)))
d_image_urls = {im_path:im_path.replace('images_out/', url_prefix) for im_path in image_paths}
if PRELOAD_IMAGES:
d_images = {}
for folder in df_meta['fpath']:
for im_path in folder.glob('*.png'):
d_images[str(im_path)] = read_image(im_path)